`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2021/06/25 09:52:35
// Design Name: 
// Module Name: simu_code_detect
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


module simu_code_detect;
    reg clk;
    reg [3:0] code_in;
    reg check;
    reg reset;
    reg update;
    reg lock;
    reg [3:0] code_store;
    wire error;
    wire unlock;
    wire led_error;
    code_detect dut(.clk(clk),.code_in(code_in),
        .check(check),.reset(reset),.lock(lock),
        .code_store(code_store),.error(error),
        .unlock(unlock),.led_error(led_error));
    
    parameter PERIOD=40;
    
    initial begin
        clk=0;
        code_in=4'b0000;
        code_store=4'b1101;
        # 50
        check=1'b1;
        # 50
        check=1'b0;
        # 50
        reset=1'b1;
        # 50
        reset=1'b0;
        # 50
        code_in=4'b1101;
        # 50
        check=1'b1;
        # 50
        lock=1'b1;
        # 50
        check=1'b0;
        lock=1'b0;
        # 50
        check=1'b1;
        # 50
        check=1'b0;
        # 50
        reset=1'b1;
        # 50
        reset=1'b0;
    end
    
    always
        #(PERIOD/2) clk=~clk;
endmodule
